-
Notifications
You must be signed in to change notification settings - Fork 525
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[restore_neigh] Check STATE_DB before sending ARP/ND pkts for neighbors associated with PortChannel #2444
Conversation
Signed-off-by: Vivek Reddy Karri <vkarri@nvidia.com>
return True | ||
key = db.keys(db.STATE_DB, table_name) | ||
if key is None: | ||
log_info ("members for {} are not yet created".format(intf)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please keep the log for Vlan as before and add a new one for LAG.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why, are there any log checkers matching for this string?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure. but its been a very legacy code. So just thot of being safe. Approving from my side
return True | ||
key = db.keys(db.STATE_DB, table_name) | ||
if key is None: | ||
log_info ("members for {} are not yet created".format(intf)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure. but its been a very legacy code. So just thot of being safe. Approving from my side
Signed-off-by: Vivek Reddy Karri <vkarri@nvidia.com> Check STATE_DB before sending ARP/ND pkts for neighbors associated with PortChannel. As a part of intf check, wait for the LAG_MEMBER_TABLE to be populated for Portchannels ifaces
Signed-off-by: Vivek Reddy Karri <vkarri@nvidia.com> Check STATE_DB before sending ARP/ND pkts for neighbors associated with PortChannel. As a part of intf check, wait for the LAG_MEMBER_TABLE to be populated for Portchannels ifaces
Signed-off-by: Vivek Reddy Karri vkarri@nvidia.com
What I did
As a part of intf check, wait for the LAG_MEMBER_TABLE to be populated for PortChannel ifaces
Why I did it
Currently, restore_neighbors just checks the
/sys/class/net/{0}/carrier
to determine of if the status is up, but during WR teamdstarts very early. It creates the netdev from the prev-life state and as i understand sets the carrier state to be based on what was found in the prev-life dump. Ref: https://github.com/sonic-net/sonic-buildimage/blob/master/src/libteam/patch/0008-libteam-Add-warm_reboot-mode.patch#L442
Checking the sysfs attribute is not a reliable option. Thus during WR because of this false-positive, restore_neighbor sends the ARP/NS very early i.e. before anything else is created, resulting in neighbor not being resolved in the end. This results in problems such as this
https://github.com/sonic-net/sonic-buildimage/issues/12029
How I verified it
On the live switch:
Verified logs and checked if the ND/ARP msgs are received on the other end:
Details if related